<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Export Grid</title>
    <!-- grid.simple.min.css, grid.all.min.js -->
    <link rel="stylesheet" href="../../builds/merged/bsgrid.all.min.css"/>
    <script type="text/javascript" src="../../plugins/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="../../builds/js/lang/grid.zh-CN.min.js"></script>
    <script type="text/javascript" src="../../builds/merged/bsgrid.all.min.js"></script>
</head>
<body style="background-color: #fff;">
<form id="searchForm">
    param1:&nbsp;<input type="text" name="param1" value="val1"/>
    &emsp;
    param2:&nbsp;<input type="text" name="param2" value="val2"/>
    &emsp;
    <input type="button" onclick="doExport();" value="Export"/>
    <!-- Or use button, note that type="button", Otherwise form will auto submit.
    <button type="button" onclick="doExport();">Export</button>
    -->
</form>
<table id="searchTable">
    <tr>
        <th w_index="XH" width="5%;">XH</th>
        <th w_index="ID" width="5%;">ID</th>
        <th w_index="CHAR" w_align="left" width="15%;">CHAR</th>
        <th w_index="TEXT" w_align="left" w_length="30" width="30%;">TEXT</th>
        <th w_index="DATE" width="15%;">DATE</th>
        <th w_index="TIME" w_hidden="true" width="15%;">TIME</th>
        <th w_index="NUM" width="5%;">NUM</th>
        <th w_render="operate" w_export="false" width="10%;">Operate</th>
    </tr>
</table>
<p/>
<pre>
Documention:

1, th properties:
   w_index: index to export
   w_align: align to export
   w_export: "false" then not export it
   width: "10%", "100px", "100PX", if not set then use $.bsgrid_export.doExport() third param's settings.colsProperties.width,
                                   all above not set then use $.bsgrid_export.defaults.settings.colsProperties.width

2, how to get column name:
   $.trim($('th').eq(n).text())

3, url request params names, global setting
   to modify that: $.bsgrid_export.defaults.requestParamsName.X = '', X may exportFileName, colNames, colIndexs, colWidths, colAligns

4, settings.colWidthPercentmultiplier
   if set column width N%, then column width will reset N*colWidthPercentmultiplier.
</pre>
<script type="text/javascript">
    var gridObj;
    $(function () {
        gridObj = $.fn.bsgrid.init('searchTable', {
            url: 'data/json.jsp',
            pageSizeSelect: true,
            pageSize: 10,
            otherParames: $('#searchForm').serializeArray()
        });
    });

    function operate(record, rowIndex, colIndex, options) {
        return '<a href="#" onclick="alert(\'ID=' + gridObj.getRecordIndexValue(record, 'ID') + '\');">Operate</a>';
    }

    function doExport() {
        alert('Only test request params, To see it in browser address url.');
        $.bsgrid_export.doExport($('#searchTable thead tr th[w_hidden!="true"]'), $('#searchForm').serializeArray(), {
            url: 'export.html' + '?sortName=' + gridObj.options.sortName + '&sortOrder=' + gridObj.options.sortOrder, // only test request params
            exportFileName: 'Export Example',
            colsProperties: {
                width: 120
            },
            colWidthPercentmultiplier: 10 // if set column width N%, then column width will reset N*10, default 14
        });
    }
</script>
</body>
</html>